<?php

namespace app\db\model;

use think\Db;
use think\Model;

class DbUsercare extends Model
{

    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    // 定义时间戳字段名
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';
    protected $dbName = 'db_usercare';
    protected $resultSetType = 'collection';

    # --------------------------------- 查询类接口 START------------------------------------
    // public function getSexAttr($value)
    // {
    //     $show_sex = [0=>'未知',1=>'男',2=>'女'];
    //     return ['val'=>$value,'show_sex'=>$show_sex[$value]];
    // }
    /**
     * 获取医务详情信息
     * @param int $usercare_id 数据库ID
     * @author MSQ 2021-8-2
     **/
    public function getDetails($usercare_id = 0, $field = '*')
    {
        if ($field && $field != '*' && count(explode(',', $field)) == 1) {
            // 只取一个字段
            $info = $this->where(['id' => $usercare_id])->value($field);
        } else {
            $info = db($this->dbName)->field($field)->where(['id' => $usercare_id])->find();
        }

        return $info;
    }
    # ---------------------------------- 查询类接口 END-------------------------------------


    # ------------------------------- 数据处理类接口 START ----------------------------------
    /**
     * 更新医务默认选择的总库 最后一次点击的总库
     * @param int $usercare_id 数据库ID
     * @author MSQ 2021-8-2
     **/
    public function upDefaultSeletDbId($usercare_id = 0, $database_id = 0)
    {
        if (!$usercare_id || !$database_id) return false;
        $this->isUpdate(true)->save(['default_database_show_id' => $database_id], ['id' => $usercare_id]);

        return true;
    }
    /**
     * 清除默认选择数据库(最后一次点击的库)
     * 适用于删除数据库时调用
     * @param int $usercare_id 数据库ID
     * @author MSQ 2021-9-26
     **/
    public function clearFefaultDbShowIdForDelDb($database_id = 0)
    {
        if (!$database_id) return false;

        $res = $this->save(['default_database_show_id' => 0],['default_database_show_id' => $database_id]);

        if ($res === false) return false;

        return true;
    }
    # --------------------------------- 数据处理类接口 END ----------------------------------

    /**
     * 获取所有普通用户信息
     * @param string $field 查询字段
     * @param array $where 查询条件
     * @param array $order 排序
     * @param array $page 分页信息 $page['page'] 第几页  $page['num'] 每页数
     * @return array $ret_info  $ret_info['lists'] 每页的列表数据  $ret_info['total'] 所有列总数
     * @author WXM 2021-08-20
     **/
    public function get_lists($field = "", $where, $order, $page)
    {
        $field_str = !empty($field) ? $field : '*';
        //数据包括 列表、列表总条数
        $ret_info          = array();
        $ret_info['lists'] = $this->field($field_str)->where($where)->order($order)->page($page['page'], $page['limit'])->select()->toArray();
        $ret_info['total'] = $this->where($where)->count();
        return $ret_info;

    }
}
